package com.csy.system.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * @author ycj
 * @date 2017-11-03
 * Copyright Hanboard
 * Created by ycj on 2017-11-03
 * 实体域基类
 * 1 实体域字段定义要求：
 * 1) String: VARCHAR,CHAR,TEXT
 * 2) Boolean: BIT
 * 3) Long: INTEGER
 * 4) Integer: TINYINT,SMALLINT,MEDIUMINT
 * 5) BigDecimal: DECIMAL
 * 6) java.sql.Date: DATE,YEAR
 * 7) java.sql.Time: TIME
 * 8) java.sql.Timestamp: DATETIME,TIMESTAMP
 * 2 实体域说明：
 * 1）如果字段名称和数据库一致（忽略大小写），则不需要写@Column注解；如果不一致，则需要写@Column注解。
 * 2) 如果字段名称在数据库中不存在（即扩展出的字段），则需要添加@Transient注解。
 * 3) 如果实体域为数据库中的表结构不一致，则需要添加@Table注解和@Entity注解；如果不是，则不需要添加。
 * 4）如果字段中包含类型这种字段，需要添加一个对应类型的枚举，然后用枚举来赋值：如类型字段，需要
 * 扩展一个类型枚举 xxxType{ One= 1 ,Two =2 } 。
 */
@Data
public class BaseDomain {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty(value = "创建人id")
    private String creatorId;
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @ApiModelProperty(value = "修改人id")
    private String modifierId;
    @ApiModelProperty(value = "修改时间")
    @TableField(fill = FieldFill.UPDATE)
    private Date modifyTime;
    @ApiModelProperty(value = "删除状态")
    private Integer deleted=0;
}
